$(function() {
    $('.btn-login').click(function(event) {
        mostrarlogin();
    });
    
    $('#feedbackallbtns').quickAccess({
        screenPosition: 'top',
        css: {position: 'absolute'},
        itemCss: {
            'backgroundColor': '#5C893C',
            'borderWidth': 1,
            'borderColor': '#ccc',
            'borderStyle': 'solid'
        },
        margin: '5px',
        radius: {
            borderTopLeftRadius: '0px',
            borderTopRightRadius: '6px',
            borderBottomLeftRadius: '0px',
            borderBottomRightRadius: '7px'
        }
    });
    
    $('.block-ficha-last .estrellas input').rating('disable') ;
    $('.block-ficha-actual .estrellas .star2').rating({
        required: true,
        callback: function(value){
            puntuar(value,this);
        }
    });
});

function mostrarReportar(usuario,tipo,extra){
    $('#modal-form-reportar').get(0).reset();
    $('#denuncia-tipo').val(tipo);
    $('#denuncia-infractor').val(usuario);
    $('#denuncia-extra').val(extra);
    $('#from-denuncia').modal({
	opacity:50,
        persist:true,
	overlayCss: {backgroundColor:"#000"}
    });
}

function mostrarSolicitarAmistad(usuario){
    $('#modal-form-sol-amistad').get(0).reset();
    $('#sol-amistad-usuario').val(usuario);
    $('#from-sol-amistad').modal({
	opacity:50,
        persist:true,
	overlayCss: {backgroundColor:"#000"}
    });
}

function enviarReportar(){
    $.ajax({
        type: 'POST',
        url: Routing.generate('denunciar'),
        data: $('#modal-form-reportar').serialize(),
        dataType: 'json',
        success: function(data) {
            $.sticky("Gracias por ayudarnos a mantener el sitio, revisaremos su denuncia y tomaremos las medidas apropiadas.", {'duplicates' : false});
            $.modal.close();
        }
    });
}

function enviarSolicitudAmistad(){
    $('#modal-form-sol-amistad .actions input').hide();
    $('#modal-form-sol-amistad .actions').append('<img class="esperar" src="'+loadingImg+'"/>');
    $.ajax({
        type: 'POST',
        url: Routing.generate('solicitud'),
        data: $('#modal-form-sol-amistad').serialize(),
        dataType: 'json',
        success: function(data) {
            $('#modal-form-sol-amistad .actions input').show();
            $('#modal-form-sol-amistad .actions .esperar').remove();
            $.sticky("Solicitud de amistad enviada correctamente.", {'duplicates' : false});
            $.modal.close();
        }
    });
}

function eliminarMensaje(mensajeId){
    if(confirm("Desea eliminar el mensaje?")){
        $.ajax({
            type: 'POST',
            url: Routing.generate('eliminar_mensaje'),
            data: { id:mensajeId },
            dataType: 'json',
            success: function() {
                var padre = $(".un-mensaje-"+mensajeId).parent();
                $(".un-mensaje-"+mensajeId).remove();
                if($.trim(padre.html()) == ""){
                    padre.parent().remove();
                }
                if($(".page-mensajes .un-asunto").length == 0){
                    window.location.reload();
                }
                $.sticky("Mensaje eliminado correctamente.", {'duplicates' : false});
                $.modal.close();
            }
        });
    }
}

function mostrarlogin(){
    $('.header-login-form .espera').hide();
    login_validator.resetForm();
    $('.header-login-form form').each (function(){
        this.reset();
    });
    $('.header-login-form .invalid_user').hide();

    $('.header-login-form').modal({
        opacity:50,
        persist:true,
        overlayCss: {backgroundColor:"#000"}
    });
}

function mostrarAqui(autenticado){
    if(!autenticado){
        $.sticky("Debe identificarse", {'duplicates' : false});
        return;
    }else{
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: Routing.generate('mostrarAqui'),
            success: function(data) {
                if(data.valid)
                    window.location.reload();
                else
                    $.sticky(data.mensaje, {'duplicates' : false});
            }
        });
    }
}

function mostrarFormRegistro(){
    $('#registrar-modal').modal({
	opacity:50,
        persist:true,
	overlayCss: {backgroundColor:"#000"}
    });
    //gaq.push(['_trackEvent', 'Registrar', 'Mostrado']);
}

function registrarFacebook(appid){
    if(typeof(FB) == 'undefined'){
        window.fbAsyncInit = function() {
            FB.init({appId: appid, status: true, cookie: true,xfbml: true});
            FB.login(function(response) {
                loadDataFb();
            }, {scope:'publish_stream,user_location,user_about_me,user_birthday,user_photos,email,user_interests'}
            );
        };
        var e = document.createElement('script');e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/es_LA/all.js';
        document.getElementById('fb-root').appendChild(e);
    }else{
        loadDataFb();
    }
}

function loginFacebook(appid,path){
    $('.header-login-form .espera').show();
    if(typeof(FB) == 'undefined'){
        window.fbAsyncInit = function() {
            FB.init({appId: appid, status: true, cookie: true,xfbml: true});
            FB.login(function(response) {
                if(response.status != 'connected'){
                    $.sticky("Error al conectarse con Facebook", {'duplicates' : false});
                    $('.header-login-form .espera').hide();
                    return false;
                }
                $.ajax({
                    type: 'GET',
                    dataType: 'json',
                    url: path,
                    success: function(data) {
                        if(data.valid == false){
                            if(data.openregistro == true){
                                $(".simplemodal-close").click();
                                $.sticky(data.mensaje, {'duplicates' : false});
                                setTimeout("mostrarFormRegistro()", 300);
                                registrarFacebook();
                            }else{
                                $.sticky(data.mensaje, {'duplicates' : false});
                            }
                            $('.header-login-form .espera').hide();
                        }else{
                            window.location.reload();
                        }
                    }
                });
            }, {scope:'publish_stream,user_location,user_about_me,user_birthday,user_photos,email,user_interests'}
            );
        };
        var e = document.createElement('script');e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/es_LA/all.js';
        document.getElementById('fb-root').appendChild(e);
    }else{
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: path,
            success: function(data) {
                if(data.valid == false){
                    if(data.openregistro == true){
                        $(".simplemodal-close").click();
                        $.sticky(data.mensaje, {'duplicates' : false});
                        setTimeout("mostrarFormRegistro()", 300);
                        registrarFacebook();
                    }else{
                        $.sticky(data.mensaje, {'duplicates' : false});
                    }
                    $('.header-login-form .espera').hide();
                }else{
                    window.location.reload();
                }
            }
        });
    }
    
}

function loadDataFb(){
    FB.api('/me', function(response) {
        if(response.id)
            $('#fos_user_registration_form_fb_id').val(response.id);

        if(response.email)
            $('#fos_user_registration_form_email').val(response.email);

        if(response.first_name)
            $('#fos_user_registration_form_nombre').val(response.first_name);

        if(response.gender && response.gender=='male')
        {
            $('#fos_user_registration_form_sexo_0').attr("checked",true);
            $('#fos_user_registration_form_busco_1').attr("checked",true);
        }else{
            $('#fos_user_registration_form_sexo_1').attr("checked",true);
            $('#fos_user_registration_form_busco_0').attr("checked",true);
        }
        if(response.bio)
        {
            $('#fos_user_registration_form_descripcion').val(response.bio);
        }
        if(response.birthday)
        {
            fecha = response.birthday;
            fecha = fecha.split('/');
            $('#fos_user_registration_form_cumple').val(fecha[1] + '/' + fecha[0] + '/' + fecha[2]);
        }
        if(response.location){
            $('#fos_user_registration_form_pais-auto').autocomplete("search",response.location.name);
        }
    });
}

function obtenerMasMensajes(asunto,page){
    $.ajax({
        type: 'GET',
        url: Routing.generate('masMensajes', {"asunto":asunto,"page": page}),
        success: function(data) {
            $('#mas-'+asunto).remove();
            $('.lst-mensajes-'+asunto).hide().prepend(data).slideDown('slow');
        }
    });
}

function responder(asunto){
    if($("#respuesta-"+asunto).val() == ""){
        $.sticky("Por favor, Ingrese un mensaje.", {'duplicates' : false});
        return;
    }
    var el = $("#respuesta-"+asunto).parent().find('.actions');
    el.find('a').hide();
    el.append('<img class="esperar" src="'+loadingImg+'"/>');
    $.ajax({
        type: 'POST',
        url: Routing.generate('responder', {"asunto":asunto,"text": $("#respuesta-"+asunto).val()}),
        success: function(data) {
            $('.lst-mensajes-'+asunto).append(data);
            el.find('a').show();
            el.find('.esperar').remove();
            $("#respuesta-"+asunto).val("");
        }
    });
}

function aceptarAmistad(id){
    $.ajax({
        type: 'POST',
        data: {"id":id},
        dataType: 'json',
        url: Routing.generate('aceptarAmistad'),
        success: function(data) {
            if(data.valid){
                $.sticky("Solicitud de amistad aceptada", {'duplicates' : false});
                $(".a-solicitud-n-"+id).html('<a href="javascript:void(0);" onclick="eliminarAmistad('+id+')">Eliminar de mis amigos</a>');
            } else {
                $.sticky("No se pudo aceptar la solicitud, intentelo mas tarde", {'duplicates' : false});
            }
        }
    });
}

function eliminarAmistad(id){
    $.ajax({
        type: 'POST',
        data: {"id":id},
        dataType: 'json',
        url: Routing.generate('eliminarAmistad'),
        success: function(data) {
            if(data.valid){
                $.sticky("Solicitud de amistad eliminada", {'duplicates' : false});
                $(".una-amistad-"+id).remove();
            } else {
                $.sticky("No se pudo eliminar la amistad, intentelo mas tarde", {'duplicates' : false});
            }
        }
    });
}

function cancelarAmistad(id){
    $.ajax({
        type: 'POST',
        data: {"id":id},
        dataType: 'json',
        url: Routing.generate('cancelarAmistad'),
        success: function(data) {
            if(data.valid){
                $.sticky("Solicitud de amistad cancelada", {'duplicates' : false});
                $(".una-amistad-"+id).remove();
            } else {
                $.sticky("No se pudo cancelar la solicitud, intentelo mas tarde", {'duplicates' : false});
            }
        }
    });
}

function verMasAmistades(page){
    $.ajax({
        type: 'GET',
        url: Routing.generate('amigosPage', {"page": page}),
        success: function(data) {
            $(".ver-mas").remove();
            $(".lista-amigos").append(data);
            /*var alto = $(".una-amistad").height()+12;
            var cant = Math.round($(".una-amistad").length/2);
            $(".lista-amigos").css('height',alto * cant);
            $(".lista-amigos").append(data);
            cant = Math.round($(".una-amistad").length/2);
            $(".lista-amigos").animate({
                'height':alto * cant + 70
            });*/
        }
    });
}

function mostrarEnviarMensaje(){
    $('#modal-form-mensaje .actions input').show();
    $('#modal-form-mensaje .actions .esperar').remove();
    $('#enviar-mensaje-modal').modal({
        opacity:50,
        persist:true,
        overlayCss: {backgroundColor:"#000"}
    });
    
    $('#modal-form-mensaje').validate({
        invalidHandler: function(){

        },
        errorPlacement: function(error, element) {
                element.parent().append(error);
        },
        submitHandler: function(form) {
            $('#modal-form-mensaje .actions input').hide();
            $('#modal-form-mensaje .actions').append('<img class="esperar" src="'+loadingImg+'"/>');
            $.ajax({
                type: 'POST',
                url: Routing.generate('enviar_mensaje'),
                data: $('#modal-form-mensaje').serialize(),
                dataType: 'json',
                success: function(data) {
                    if(data.success == true){
                        $('#modal-form-mensaje')[0].reset();
                        $.sticky("Mensaje enviado exitosamente", {'duplicates' : false});
                    }else{
                        $.sticky("Error al enviar el mensaje, inténtelo nuevamente más tarde.", {'duplicates' : false});
                    }
                    $.modal.close();
                    $('#modal-form-mensaje .actions input').show();
                },error:function(){
                    $('#modal-form-mensaje .actions input').show();
                    $.sticky("Error al enviar el mensaje, inténtelo nuevamente más tarde.", {'duplicates' : false});
                    $.modal.close();
                }
            });
            
        }
    });

    $("#asunto").rules("add", {
        required: true,
        messages: {
            required: 'Por favor ingrese el asunto'
        }
    });

    $("#mensaje").rules("add", {
        required: true,
        messages: {
            required: 'Por favor ingrese el mensaje'
        }
    });


}